[INFO] cloning repository https://github.com/Jellonator/Emailang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Jellonator/Emailang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJellonator%2FEmailang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJellonator%2FEmailang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 374f1f91e1fdf4cd13a8ef4dd243e52709a7650a
[INFO] fixing Jellonator/Emailang against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJellonator%2FEmailang" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Jellonator/Emailang
[INFO] finished tweaking git repo https://github.com/Jellonator/Emailang
[INFO] tweaked toml for git repo https://github.com/Jellonator/Emailang written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Jellonator/Emailang on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Jellonator/Emailang already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `emailang` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] c02f94f6abc1582d5fa44dd115fcdf12088a45c0279559952f57a5dc934be1e3
[INFO] running `Command { std: "docker" "start" "c02f94f6abc1582d5fa44dd115fcdf12088a45c0279559952f57a5dc934be1e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c02f94f6abc1582d5fa44dd115fcdf12088a45c0279559952f57a5dc934be1e3" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c02f94f6abc1582d5fa44dd115fcdf12088a45c0279559952f57a5dc934be1e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c02f94f6abc1582d5fa44dd115fcdf12088a45c0279559952f57a5dc934be1e3" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `emailang` (manifest) generated 1 warning
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking libc v0.2.16
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking regex-syntax v0.3.5
[INFO] [stderr]     Checking utf8-ranges v0.1.3
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking regex v0.1.77
[INFO] [stderr]     Checking emailang v1.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/main.rs from 2015 edition to 2018
[INFO] [stderr]        Fixed src/parser/mod.rs (3 fixes)
[INFO] [stderr]        Fixed src/interpreter/std/stdcmp.rs (3 fixes)
[INFO] [stderr]        Fixed src/types.rs (6 fixes)
[INFO] [stderr]        Fixed src/parser/symbolparser.rs (28 fixes)
[INFO] [stderr]        Fixed src/interpreter/std/mod.rs (1 fix)
[INFO] [stderr]        Fixed src/interpreter/std/stdloop.rs (3 fixes)
[INFO] [stderr]        Fixed src/user.rs (5 fixes)
[INFO] [stderr]        Fixed src/symbols.rs (12 fixes)
[INFO] [stderr]        Fixed src/environment.rs (1 fix)
[INFO] [stderr]        Fixed src/mail.rs (2 fixes)
[INFO] [stderr]        Fixed src/parser/textparser.rs (11 fixes)
[INFO] [stderr]        Fixed src/interpreter/std/stdio.rs (3 fixes)
[INFO] [stderr]        Fixed src/modifier.rs (4 fixes)
[INFO] [stderr]        Fixed src/interpreter/mod.rs (6 fixes)
[INFO] [stderr]        Fixed src/server.rs (1 fix)
[INFO] [stderr]        Fixed src/instruction.rs (5 fixes)
[INFO] [stderr]        Fixed src/error.rs (1 fix)
[INFO] [stderr]        Fixed src/interpreter/std/stdmath.rs (3 fixes)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.10s
[INFO] [stderr] crater-edition-check: emailang v1.0.0 (/opt/rustwide/workdir) updating edition from 2015 to 2018
[INFO] [stderr]     Checking emailang v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `std::collections`
[INFO] [stdout]  --> src/interpreter/mod.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[INFO] [stdout]   |          ^^^^^^^^^^^ could not find `collections` in `std`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:136:15
[INFO] [stdout]     |
[INFO] [stdout] 136 |                     Box::new(r#try!(symbolparser::parse_type(&a.0))),
[INFO] [stdout]     |                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:137:15
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     Box::new(r#try!(symbolparser::parse_type(&b.0)))
[INFO] [stdout]     |                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:146:18
[INFO] [stdout]     |
[INFO] [stdout] 146 | ...                   Box::new(r#try!(symbolparser::parse_expression(&v,
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:150:20
[INFO] [stdout]     |
[INFO] [stdout] 150 | ...                   tuple.push(r#try!(symdef.get_type()));
[INFO] [stdout]     |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:157:36
[INFO] [stdout]     |
[INFO] [stdout] 157 |                         Ok(Type::Expression(Box::new(r#try!(symbolparser::parse_expression(&val.0,
[INFO] [stdout]     |                                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:161:10
[INFO] [stdout]     |
[INFO] [stdout] 161 |                         Ok(r#try!(r#try!(val.0.get(0)
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |                         Ok(r#try!(r#try!(val.0.get(0)
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/symbolparser.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |     for chunk in r#try!(split_semicolon(block)) {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/symbolparser.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 |         ret.push((name.clone(), r#try!(parse_symbols(&block.0))));
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:108:18
[INFO] [stdout]     |
[INFO] [stdout] 108 |                         cond: Some(r#try!(parse_type(&exp))),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:109:14
[INFO] [stdout]     |
[INFO] [stdout] 109 |                         block: r#try!(parse_symbols(&curlybracket)),
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:115:18
[INFO] [stdout]     |
[INFO] [stdout] 115 |                         cond: Some(r#try!(parse_type(&exp))),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:116:14
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         block: r#try!(parse_symbols(&curlybracket)),
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:131:13
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     block: r#try!(parse_symbols(&curlybracket)),
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 |             r#try!(parse_expression(symbols, SyntaxErrorFactory::from_symbols(symbols)))))
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:148:3
[INFO] [stdout]     |
[INFO] [stdout] 148 |         r#try!(symbols[0].get_type())
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:155:25
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let (pre, mid, post) = r#try!(split_expression(symbols, errfact.clone()));
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:156:15
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let preval = r#try!(parse_type(pre));
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:157:16
[INFO] [stdout]     |
[INFO] [stdout] 157 |     let postval = r#try!(parse_type(post));
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:170:59
[INFO] [stdout]     |
[INFO] [stdout] 170 |         Symbol::Index(ref pos) => Ok(Instruction::Index(preval, r#try!(parse_type(&pos.0)))),
[INFO] [stdout]     |                                                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:174:28
[INFO] [stdout]     |
[INFO] [stdout] 174 |                     Some(ref val) => Some(r#try!(parse_type(&val.0))),
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:178:28
[INFO] [stdout]     |
[INFO] [stdout] 178 |                     Some(ref val) => Some(r#try!(parse_type(&val.0))),
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:189:15
[INFO] [stdout]     |
[INFO] [stdout] 189 |     for chunk in r#try!(split_semicolon(symbols)) {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 | ...                   r#try!(parse_user_block(&block.0))
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:215:7
[INFO] [stdout]     |
[INFO] [stdout] 215 |                         r#try!(parse_type(&name.0)),
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:216:7
[INFO] [stdout]     |
[INFO] [stdout] 216 |                         r#try!(parse_type(&server.0)),
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:220:32
[INFO] [stdout]     |
[INFO] [stdout] 220 |                     Instruction::CreateServer(r#try!(parse_type(&chunk)))
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:224:4
[INFO] [stdout]     |
[INFO] [stdout] 224 |             r#try!(parse_ifblock(&chunk))
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:227:4
[INFO] [stdout]     |
[INFO] [stdout] 227 |             r#try!(parse_expression(&chunk, SyntaxErrorFactory::from_symbols(&chunk)))
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:152:15
[INFO] [stdout]     |
[INFO] [stdout] 152 |                 let pos = r#try!(codechars_find(&path, '@').ok_or(SyntaxError::new(
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 158 |                     symbols::Block(r#try!(parse_code(&a))),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:159:21
[INFO] [stdout]     |
[INFO] [stdout] 159 |                     symbols::Block(r#try!(parse_code(&b[1..])))
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:164:40
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 Symbol::CurlyBraced(symbols::Block(r#try!(parse_code(&block))))
[INFO] [stdout]     |                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:168:40
[INFO] [stdout]     |
[INFO] [stdout] 168 |                 Symbol::Parenthesis(symbols::Block(r#try!(parse_code(&block))))
[INFO] [stdout]     |                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 | ...                   r#try!(parse_code(&indexcontents))))
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:184:33
[INFO] [stdout]     |
[INFO] [stdout] 184 | ...                   _ => Some(symbols::Block(r#try!(parse_code(val1))))
[INFO] [stdout]     |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:189:33
[INFO] [stdout]     |
[INFO] [stdout] 189 | ...                   _ => Some(symbols::Block(r#try!(parse_code(val2))))
[INFO] [stdout]     |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]  --> src/parser/mod.rs:8:31
[INFO] [stdout]   |
[INFO] [stdout] 8 |     symbolparser::parse_symbols(&r#try!(textparser::parse_text(&code)))
[INFO] [stdout]   |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/user.rs:124:24
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub type UserExtFunc = Fn(&User, &mut Interpreter, &Mail);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub type UserExtFunc = dyn Fn(&User, &mut Interpreter, &Mail);
[INFO] [stdout]     |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/modifier.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 |   pub type ModifierFunc = Fn(&Type, &mut Interpreter, &UserPath,
[INFO] [stdout]   |  _________________________^
[INFO] [stdout] 8 | |                            &mut Environment, &[Type]) -> Option<Type>;
[INFO] [stdout]   | |_____________________________________________________________________^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type ModifierFunc = dyn Fn(&Type, &mut Interpreter, &UserPath,
[INFO] [stdout]   |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> src/interpreter/std/stdio.rs:26:48
[INFO] [stdout]    |
[INFO] [stdout] 26 |             mail.return_mail(inter, &mail.message, line.trim_right(), Vec::new());
[INFO] [stdout]    |                                                         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 26 -             mail.return_mail(inter, &mail.message, line.trim_right(), Vec::new());
[INFO] [stdout] 26 +             mail.return_mail(inter, &mail.message, line.trim_end(), Vec::new());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:26:59
[INFO] [stdout]    |
[INFO] [stdout] 26 |         Err(err) => panic!("couldn't open {}: {}", display, err.description())
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:31:59
[INFO] [stdout]    |
[INFO] [stdout] 31 |         Err(why) => panic!("couldn't read {}: {}", display, why.description()),
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_left`: superseded by `trim_start`
[INFO] [stdout]   --> src/main.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |                     let ltrim = s.trim_left();
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 42 -                     let ltrim = s.trim_left();
[INFO] [stdout] 42 +                     let ltrim = s.trim_start();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interpreter/mod.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut serv = match self.get_server(&tserver) {
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interpreter/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut user = match serv.get_user_mut(&tuser) {
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `emailang` (bin "emailang" test) due to 1 previous error; 46 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0432]: unresolved import `std::collections`
[INFO] [stdout]  --> src/interpreter/mod.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[INFO] [stdout]   |          ^^^^^^^^^^^ could not find `collections` in `std`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:136:15
[INFO] [stdout]     |
[INFO] [stdout] 136 |                     Box::new(r#try!(symbolparser::parse_type(&a.0))),
[INFO] [stdout]     |                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:137:15
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     Box::new(r#try!(symbolparser::parse_type(&b.0)))
[INFO] [stdout]     |                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:146:18
[INFO] [stdout]     |
[INFO] [stdout] 146 | ...                   Box::new(r#try!(symbolparser::parse_expression(&v,
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:150:20
[INFO] [stdout]     |
[INFO] [stdout] 150 | ...                   tuple.push(r#try!(symdef.get_type()));
[INFO] [stdout]     |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:157:36
[INFO] [stdout]     |
[INFO] [stdout] 157 |                         Ok(Type::Expression(Box::new(r#try!(symbolparser::parse_expression(&val.0,
[INFO] [stdout]     |                                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:161:10
[INFO] [stdout]     |
[INFO] [stdout] 161 |                         Ok(r#try!(r#try!(val.0.get(0)
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/symbols.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |                         Ok(r#try!(r#try!(val.0.get(0)
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/symbolparser.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |     for chunk in r#try!(split_semicolon(block)) {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/symbolparser.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 |         ret.push((name.clone(), r#try!(parse_symbols(&block.0))));
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:108:18
[INFO] [stdout]     |
[INFO] [stdout] 108 |                         cond: Some(r#try!(parse_type(&exp))),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:109:14
[INFO] [stdout]     |
[INFO] [stdout] 109 |                         block: r#try!(parse_symbols(&curlybracket)),
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:115:18
[INFO] [stdout]     |
[INFO] [stdout] 115 |                         cond: Some(r#try!(parse_type(&exp))),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:116:14
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         block: r#try!(parse_symbols(&curlybracket)),
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:131:13
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     block: r#try!(parse_symbols(&curlybracket)),
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 |             r#try!(parse_expression(symbols, SyntaxErrorFactory::from_symbols(symbols)))))
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:148:3
[INFO] [stdout]     |
[INFO] [stdout] 148 |         r#try!(symbols[0].get_type())
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:155:25
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let (pre, mid, post) = r#try!(split_expression(symbols, errfact.clone()));
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:156:15
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let preval = r#try!(parse_type(pre));
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:157:16
[INFO] [stdout]     |
[INFO] [stdout] 157 |     let postval = r#try!(parse_type(post));
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:170:59
[INFO] [stdout]     |
[INFO] [stdout] 170 |         Symbol::Index(ref pos) => Ok(Instruction::Index(preval, r#try!(parse_type(&pos.0)))),
[INFO] [stdout]     |                                                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:174:28
[INFO] [stdout]     |
[INFO] [stdout] 174 |                     Some(ref val) => Some(r#try!(parse_type(&val.0))),
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:178:28
[INFO] [stdout]     |
[INFO] [stdout] 178 |                     Some(ref val) => Some(r#try!(parse_type(&val.0))),
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:189:15
[INFO] [stdout]     |
[INFO] [stdout] 189 |     for chunk in r#try!(split_semicolon(symbols)) {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 | ...                   r#try!(parse_user_block(&block.0))
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:215:7
[INFO] [stdout]     |
[INFO] [stdout] 215 |                         r#try!(parse_type(&name.0)),
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:216:7
[INFO] [stdout]     |
[INFO] [stdout] 216 |                         r#try!(parse_type(&server.0)),
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:220:32
[INFO] [stdout]     |
[INFO] [stdout] 220 |                     Instruction::CreateServer(r#try!(parse_type(&chunk)))
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:224:4
[INFO] [stdout]     |
[INFO] [stdout] 224 |             r#try!(parse_ifblock(&chunk))
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/symbolparser.rs:227:4
[INFO] [stdout]     |
[INFO] [stdout] 227 |             r#try!(parse_expression(&chunk, SyntaxErrorFactory::from_symbols(&chunk)))
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:152:15
[INFO] [stdout]     |
[INFO] [stdout] 152 |                 let pos = r#try!(codechars_find(&path, '@').ok_or(SyntaxError::new(
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 158 |                     symbols::Block(r#try!(parse_code(&a))),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:159:21
[INFO] [stdout]     |
[INFO] [stdout] 159 |                     symbols::Block(r#try!(parse_code(&b[1..])))
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:164:40
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 Symbol::CurlyBraced(symbols::Block(r#try!(parse_code(&block))))
[INFO] [stdout]     |                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:168:40
[INFO] [stdout]     |
[INFO] [stdout] 168 |                 Symbol::Parenthesis(symbols::Block(r#try!(parse_code(&block))))
[INFO] [stdout]     |                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 | ...                   r#try!(parse_code(&indexcontents))))
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:184:33
[INFO] [stdout]     |
[INFO] [stdout] 184 | ...                   _ => Some(symbols::Block(r#try!(parse_code(val1))))
[INFO] [stdout]     |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/textparser.rs:189:33
[INFO] [stdout]     |
[INFO] [stdout] 189 | ...                   _ => Some(symbols::Block(r#try!(parse_code(val2))))
[INFO] [stdout]     |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]  --> src/parser/mod.rs:8:31
[INFO] [stdout]   |
[INFO] [stdout] 8 |     symbolparser::parse_symbols(&r#try!(textparser::parse_text(&code)))
[INFO] [stdout]   |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/user.rs:124:24
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub type UserExtFunc = Fn(&User, &mut Interpreter, &Mail);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub type UserExtFunc = dyn Fn(&User, &mut Interpreter, &Mail);
[INFO] [stdout]     |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/modifier.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 |   pub type ModifierFunc = Fn(&Type, &mut Interpreter, &UserPath,
[INFO] [stdout]   |  _________________________^
[INFO] [stdout] 8 | |                            &mut Environment, &[Type]) -> Option<Type>;
[INFO] [stdout]   | |_____________________________________________________________________^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type ModifierFunc = dyn Fn(&Type, &mut Interpreter, &UserPath,
[INFO] [stdout]   |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> src/interpreter/std/stdio.rs:26:48
[INFO] [stdout]    |
[INFO] [stdout] 26 |             mail.return_mail(inter, &mail.message, line.trim_right(), Vec::new());
[INFO] [stdout]    |                                                         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 26 -             mail.return_mail(inter, &mail.message, line.trim_right(), Vec::new());
[INFO] [stdout] 26 +             mail.return_mail(inter, &mail.message, line.trim_end(), Vec::new());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:26:59
[INFO] [stdout]    |
[INFO] [stdout] 26 |         Err(err) => panic!("couldn't open {}: {}", display, err.description())
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:31:59
[INFO] [stdout]    |
[INFO] [stdout] 31 |         Err(why) => panic!("couldn't read {}: {}", display, why.description()),
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_left`: superseded by `trim_start`
[INFO] [stdout]   --> src/main.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |                     let ltrim = s.trim_left();
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 42 -                     let ltrim = s.trim_left();
[INFO] [stdout] 42 +                     let ltrim = s.trim_start();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interpreter/mod.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut serv = match self.get_server(&tserver) {
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interpreter/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut user = match serv.get_user_mut(&tuser) {
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `emailang` (bin "emailang") due to 1 previous error; 46 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "c02f94f6abc1582d5fa44dd115fcdf12088a45c0279559952f57a5dc934be1e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c02f94f6abc1582d5fa44dd115fcdf12088a45c0279559952f57a5dc934be1e3", kill_on_drop: false }`
[INFO] [stdout] c02f94f6abc1582d5fa44dd115fcdf12088a45c0279559952f57a5dc934be1e3
